This project is part of the
@thi.ng/umbrella monorepo.
About
Various higher-order, configurable string formatting & utility
functions, some memoized. Please sources / docstrings for now.
Partially based on Clojure version of thi.ng/strf.
Status
STABLE - used in production
Search or submit any issues for this package
Installation
yarn add @thi.ng/strings
// ES module
<script type="module" src="https://unpkg.com/@thi.ng/strings?module" crossorigin></script>
// UMD
<script src="https://unpkg.com/@thi.ng/strings/lib/index.umd.js" crossorigin></script>
Package sizes (gzipped, pre-treeshake): ESM: 3.65 KB / CJS: 3.94 KB / UMD: 3.74 KB
Dependencies
Usage examples
Several demos in this repo's
/examples
directory are using this package.
A selection:
Screenshot | Description | Live demo | Source |
---|
| Basic crypto-currency candle chart with multiple moving averages plots | Demo | Source |
| Basic SPA example with atom-based UI router | Demo | Source |
| rstream based spreadsheet w/ S-expression formula DSL | Demo | Source |
| XML/HTML/SVG to hiccup/JS conversion | Demo | Source |
API
Generated API docs
Basic usage examples
const fmt = defFormat([
"Price: ",
{ usd: "$", gbp: "£", eur: "€" },
float(2),
" (",
percent(2),
" off)"
]);
fmt("usd", 1.2345, 0.5);
fmt("eur", 1.2345, 0.25)
General
defFormat
format
hstr
ignore
interpolate
str
Case
camel
capitalize
kebab
lower
snake
slugify
upper
Numeric & radix-based
float
floatFixedWidth
maybeParseFloat
maybeParseInt
percent
radix
uuid
B8
/ B16
/ B32
- binary / bitstring presetsU8
/ U16
/ U24
/ U32
/ U64
- hex format presets (unsigned values)
Padding / truncation
center
padLeft
padRight
truncate
truncateLeft
wrap
Z2
/ Z3
/ Z4
- zero-pad presets
Units
units
- define new unit w/ magnitudes & suffixesbits
bytes
grams
meters
seconds
String creation & editing
Authors
Karsten Schmidt
If this project contributes to an academic publication, please cite it as:
@misc{thing-strings,
title = "@thi.ng/strings",
author = "Karsten Schmidt",
note = "https://thi.ng/strings",
year = 2015
}
License
© 2015 - 2021 Karsten Schmidt // Apache Software License 2.0